package com.ktgj.flight.domain.InterfaceEntity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * 舱位信息实体类：MoCabinInfo
 */
public class MoCabinInfo implements Serializable {
    public MoCabinInfo()
    {
        ListSubCabin = new ArrayList<>();
        ProductPolicy = new MoProductPolicy();
        WebAmountInfo = new MoAmountInfo();
        AppAmountInfo = new MoAmountInfo();
        CallCenterAmountInfo = new MoAmountInfo();
        CabinRule = new MoCabinRule();
        ChdCabinRule = new MoCabinRule();
        IftCabinRule = new MoCabinRule();

        MoFRefundAndChangFeeRequest = new MoFlightRefundAndChangFeeRequest();
    }


    public MoFlightRefundAndChangFeeRequest MoFRefundAndChangFeeRequest;

    /**
     * 产品信息
     */
    public MoProductPolicy ProductPolicy;
    /**
     * 舱位
     */
    public String Cabin;

    /**
     * 舱位等级
     */
    public String BaseCabin;

    /**
     * 舱位等级名称
     */
    public String BaseCabinName;


    /**
     * 从SHOPPING获取的基价
     */
    public BigDecimal BaseAmount;

    /**
     * 从SHOPPING获取原始折扣 如：100
     */
    public BigDecimal BaseDisCountRate;

    /**
     * 网站显示的价格
     */
    public MoAmountInfo WebAmountInfo;

    /**
     * 手机客户端显示的价格
     */
    public MoAmountInfo AppAmountInfo;

    /**
     * 呼叫中心显示的价格
     */
    public MoAmountInfo CallCenterAmountInfo;

    /**
     * 舱位剩余座位数
     */
    public int CabinLeft;

    /**
     * 舱位剩余仓位描述
     */
    public String CabinLeftDesc;

    /**
     * 舱位标识
     */
    public String CabinMark;

    /**
     * 子舱位（1到多个子舱位）
     */
    public List<String> ListSubCabin;

    /**
     * 退改签规则
     */
    public MoCabinRule CabinRule;

    /**
     * 儿童退改签规则
     */
    public MoCabinRule ChdCabinRule;

    /**
     * 婴儿退改签规则
     */
    public MoCabinRule IftCabinRule;

    /**
     * 舱位等级（参照枚举：EnumHelper.CabinLevel）
     */
    public int CabinLevel;

    /**
     * 酷讯跳转信息
     */
    public String SP;

    /**
     * 用于解析携程时的产品索引
     */
    public String ProductIndex;

    /**
     * 用于解析携程时的舱位索引(PocliyInfo与Product数量一致)
     */
    public String PolicyIndex;

    /**
     * 用于解析携程时的退改签索引
     */
    public String PolicyRuleIndex;

    /**
     * 2015-05-11 新增过滤价格
     */
    public Boolean IsRemove;

    /**
     * 允许下单证件类型列表,多个是用‘,’分割，格式如：0,1,2
     */
    public String AcceptableIDCardTypeList;

    /**
     * 年龄限制 字符串类型，多个使用‘,’分割，格式如：13-23,60-90 （13岁到23岁和60岁到90岁）
     */
    public String PassengerAgeLimit;

    /**
     * 餐食 Y|N
     */
    public String Meal;

    /**
     * 差价（升舱费）
     */
    public BigDecimal DiffPriceAdt;
    /**
     * 改期费
     */
    public BigDecimal ChangeFeeAdt;

    /**
     * 是否全额行程单（true 全额行程单，false 部分行程单加差额发票）
     */
    public Boolean IsFullReceipt;


    /**
     * 儿童相关信息
     */

    public CabinPassenger ChdCabin;

    /**
     * 婴儿相关信息
     */

    public CabinPassenger InfCabin;

    public MoFlightRefundAndChangFeeRequest getMoFRefundAndChangFeeRequest() {
        return MoFRefundAndChangFeeRequest;
    }

    public void setMoFRefundAndChangFeeRequest(MoFlightRefundAndChangFeeRequest moFRefundAndChangFeeRequest) {
        MoFRefundAndChangFeeRequest = moFRefundAndChangFeeRequest;
    }

    public MoProductPolicy getProductPolicy() {
        return ProductPolicy;
    }

    public void setProductPolicy(MoProductPolicy productPolicy) {
        ProductPolicy = productPolicy;
    }

    public String getCabin() {
        return Cabin;
    }

    public void setCabin(String cabin) {
        Cabin = cabin;
    }

    public String getBaseCabin() {
        return BaseCabin;
    }

    public void setBaseCabin(String baseCabin) {
        BaseCabin = baseCabin;
    }

    public BigDecimal getBaseAmount() {
        return BaseAmount;
    }

    public void setBaseAmount(BigDecimal baseAmount) {
        BaseAmount = baseAmount;
    }

    public BigDecimal getBaseDisCountRate() {
        return BaseDisCountRate;
    }

    public void setBaseDisCountRate(BigDecimal baseDisCountRate) {
        BaseDisCountRate = baseDisCountRate;
    }

    public MoAmountInfo getWebAmountInfo() {
        return WebAmountInfo;
    }

    public void setWebAmountInfo(MoAmountInfo webAmountInfo) {
        WebAmountInfo = webAmountInfo;
    }

    public MoAmountInfo getAppAmountInfo() {
        return AppAmountInfo;
    }

    public void setAppAmountInfo(MoAmountInfo appAmountInfo) {
        AppAmountInfo = appAmountInfo;
    }

    public MoAmountInfo getCallCenterAmountInfo() {
        return CallCenterAmountInfo;
    }

    public void setCallCenterAmountInfo(MoAmountInfo callCenterAmountInfo) {
        CallCenterAmountInfo = callCenterAmountInfo;
    }

    public int getCabinLeft() {
        return CabinLeft;
    }

    public void setCabinLeft(int cabinLeft) {
        CabinLeft = cabinLeft;
    }

    public String getCabinMark() {
        return CabinMark;
    }

    public void setCabinMark(String cabinMark) {
        CabinMark = cabinMark;
    }

    public List<String> getListSubCabin() {
        return ListSubCabin;
    }

    public void setListSubCabin(List<String> listSubCabin) {
        ListSubCabin = listSubCabin;
    }

    public MoCabinRule getCabinRule() {
        return CabinRule;
    }

    public void setCabinRule(MoCabinRule cabinRule) {
        CabinRule = cabinRule;
    }

    public MoCabinRule getChdCabinRule() {
        return ChdCabinRule;
    }

    public void setChdCabinRule(MoCabinRule chdCabinRule) {
        ChdCabinRule = chdCabinRule;
    }

    public MoCabinRule getIftCabinRule() {
        return IftCabinRule;
    }

    public void setIftCabinRule(MoCabinRule iftCabinRule) {
        IftCabinRule = iftCabinRule;
    }

    public int getCabinLevel() {
        return CabinLevel;
    }

    public void setCabinLevel(int cabinLevel) {
        CabinLevel = cabinLevel;
    }

    public String getSP() {
        return SP;
    }

    public void setSP(String SP) {
        this.SP = SP;
    }

    public String getProductIndex() {
        return ProductIndex;
    }

    public void setProductIndex(String productIndex) {
        ProductIndex = productIndex;
    }

    public String getPolicyIndex() {
        return PolicyIndex;
    }

    public void setPolicyIndex(String policyIndex) {
        PolicyIndex = policyIndex;
    }

    public String getPolicyRuleIndex() {
        return PolicyRuleIndex;
    }

    public void setPolicyRuleIndex(String policyRuleIndex) {
        PolicyRuleIndex = policyRuleIndex;
    }

    public Boolean getRemove() {
        return IsRemove;
    }

    public void setRemove(Boolean remove) {
        IsRemove = remove;
    }

    public String getAcceptableIDCardTypeList() {
        return AcceptableIDCardTypeList;
    }

    public void setAcceptableIDCardTypeList(String acceptableIDCardTypeList) {
        AcceptableIDCardTypeList = acceptableIDCardTypeList;
    }

    public String getPassengerAgeLimit() {
        return PassengerAgeLimit;
    }

    public void setPassengerAgeLimit(String passengerAgeLimit) {
        PassengerAgeLimit = passengerAgeLimit;
    }

    public String getMeal() {
        return Meal;
    }

    public void setMeal(String meal) {
        Meal = meal;
    }

    public BigDecimal getDiffPriceAdt() {
        return DiffPriceAdt;
    }

    public void setDiffPriceAdt(BigDecimal diffPriceAdt) {
        DiffPriceAdt = diffPriceAdt;
    }

    public BigDecimal getChangeFeeAdt() {
        return ChangeFeeAdt;
    }

    public void setChangeFeeAdt(BigDecimal changeFeeAdt) {
        ChangeFeeAdt = changeFeeAdt;
    }

    public Boolean getFullReceipt() {
        return IsFullReceipt;
    }

    public void setFullReceipt(Boolean fullReceipt) {
        IsFullReceipt = fullReceipt;
    }

    public CabinPassenger getChdCabin() {
        return ChdCabin;
    }

    public void setChdCabin(CabinPassenger chdCabin) {
        ChdCabin = chdCabin;
    }

    public CabinPassenger getInfCabin() {
        return InfCabin;
    }

    public void setInfCabin(CabinPassenger infCabin) {
        InfCabin = infCabin;
    }
}
